<?php

class Solicitudes_AceptacionparesController extends Zend_Controller_Action
{
	private $nav;
	private $infoPrograma;
	private $codproceso;
	private $datosproceso;
	private $codestado;
	private $datospar;
	
	
    public function init() {
        $sesionProceso = new Zend_Session_Namespace("PROCESO");
		$this->codproceso = $sesionProceso->codproceso;
		$Proceso = new Solicitudes_Model_DetalleSolicitud();
        $this->datosproceso = $Proceso->cargardatosProceso($this->codproceso);
		
		$Programa = new Solicitudes_Model_DetalleSolicitud();
		$this->view->infoPrograma = $Programa->cargardatosPrograma($this->datosproceso["codprograma"]);
		$this->view->infoPrograma["codproceso"] = $this->codproceso;
//        $this->codestado =  $Programa->getEstadoProceso($sesionProceso->codproceso);
    	
    	$this->nav = new App_Util_Navegacion();
		$this->nav->agregar_navegacion("Lista de solicitudes", "/solicitudes/index/lista","Lista de solicitudes");
        $this->nav->agregar_navegacion("Informe de pares","","");
		$this->view->nav = $this->nav;
		
		$serviceTable = new Visitas_Model_ParesProceso();
		$this->datospar = $serviceTable->getCodigoParProceso($this->datosproceso["codproceso"],App_User::getCodigoUsuario());
		
                $this->view->extensiones = $Programa->cargardatosPrograma("","",$this->view->infoPrograma["codprograma"]);
    	    
    	    if ($this->view->infoPrograma["extension"]==1){
    	        if (!empty($this->view->infoPrograma["pro_codprograma"])){
    	            $this->view->programaextiende = $Programa->cargardatosPrograma($this->view->infoPrograma["pro_codprograma"]);
    	        }
    	    }
//		Zend_Debug::dump($this->datospar);
		//Resumen Informacion del programa (va en todos los actions)
		//$this->instituciones = new Instituciones_Model_Instituciones();
		//$infoinstitucion= $this->instituciones->cargardatosInfo($codinstitucion);
		//$this->view->infoInstitucion=$infoinstitucion;
    }

    public function indexAction() {
        $form = new Solicitudes_Form_AceptacionVisita();
        $form->recoverFromRedirect();
        $mensajes = $form->getMessages();
        if (count($mensajes)==0){
//            if ($this->datospar["estadoaceptacionpar"]==2 && $this->datospar["coordinador"]=="S"){
            if ($this->datospar["estadoaceptacionpar"]==2){
                $datos_param["codproceso"] = $this->codproceso;
				$params=App_Util_SafeUrl::encriptar($datos_param,false);
                $this->_helper->redirector("ingresar","solicitudes","visitas",$params);
//                $this->_helper->redirector("index", null, null, App_Util_SafeUrl::encriptar($parametros, false));
                exit();
            }else{
                $array_aceptacion = array(1=>"",2=>"Aceptar",3=>"Rechazar");
                $form->populate($this->datospar);
            }
        }
        $this->view->form = $form;
    }

    public function guardaraceptacionAction(){
        $form = new Solicitudes_Form_AceptacionVisita();
        if($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost())){
            $justificacion = $this->_getParam("justificacionpar");
            if($this->_getParam("estadoaceptacionpar")==3 && empty($justificacion)) {
			    $form->getElement("justificacionpar")->addError("La justificación es un dato requerido");
				$form->setStateRedirect();
			} else {
				try {
					$serviceTable = new Visitas_Model_ParesProceso();
					$datos = $this->getRequest()->getPost();
					$datos["codparproceso"] = $this->datospar["codparproceso"];
	                $serviceTable->guardarAceptacionPar($datos);
	                
	                if ($datos["estadoaceptacionpar"]==3){
	                    $datos_codparproceso = $serviceTable->cargarDatos($datos["codparproceso"]);
	                    
	                    $appConfig = Zend_Registry::get('appConfig');
	                    $correo_cna = $appConfig->get("correo_CNA");
	                    
	                    $Obs_estados = new App_Observer_Estado();
	                    $asunto = "Rechazo a la invitación de visita de pares. ";
    	                $msg  = "Cordial saludo: \n\n";
    	                $msg .= "ASUNTO: Rechazo visita codproceso {$datos_codparproceso["codproceso"]} \n\n";
    	                $msg .= "El motivo de mi rechazo es : ".$datos["justificacionpar"]." \n\n";
    	                $msg .= "Atte. \n\n";
    	                $msg .= App_User::getNombreCompleto();
    	                
	                    $mail = new App_Mail();
	                    $mail->sendText($correo_cna, $asunto, $msg);
	                }
					$this->view->priorityMessenger("Los datos se han guardado correctamente", "success");
				} catch (Exception $e) {
					$this->view->priorityMessenger($e->getMessage(), "error");
				}
			}
        } else {
            $form->setStateRedirect();
        }
        $this->_helper->redirector("index","index","default");
	}
    
}

